Predavanja i vežbe iz računarstva i informatike za učenike gimnazije

Računarstvo i informatika za učenike gimnazije

1. Razred

2. Razred

3. Razred

4. Razred

 

 

Nizovni tip

 

 

 

Često je potrebno u programu deklarisati i više hiljada promenljivih. Uvođenje toliko promenljivih na uobičajen način praktično je neizvodljiv pa zbog toga koristimo nizovni tip koji spada u strukturirane tipove podataka. Nizovni tip opisuje ograničen uređen skup promenljivih istog tipa, koje se nazivaju komponente (niza). Tako na primer ako u programu imamo deklarisan niz A koji sadrži 100 komponenti tipa integer, onda bismo prvoj od njih pristupili na sledeći način : A[1]:= 56. Tip komponente se naziva bazni tip (u gornjem primeru je bazni tip - integer), a vrednostima pojedinih komponenti može se pristupiti pomoću indeksa (u gornjem primeru pristupili smo elementu niza koji ima indeks 1).

Primeri:
var
  x,y : array [1..10] of boolean; {deklaracija dva niza od po deset elemenata (komponenti) bulovog tipa}
  z: array [1..1000] of real; {deklaracija niza od 1000 elemenata koji su realnog tipa}
  stniz: array [1..25] of string [80]; {deklaracija niza od 25 elemenata tipa string od kojih je svaki dugačak 80 karaktera}

Nizovni tip se obično koristi sa for ciklusom jer je obično poznat broj komponenti niza.

Primer 1:
Napisati program kojim se izračunava srednja vrednost niza x od n elemenata. 
napomena: ukoliko nije navedena maksimalna "dužina niza" obično je postavljamo (u ovakvim zadacima) na 100 ili 1000, a korisnik programa unosi konkretno n koje mora biti manje od 100 ili 1000.

Program srednjaVrednost;
var x:array [1..100] of real;
     i,n: integer; 
     suma:real;

BEGIN
 write ('unesite n ' ); readln (n);
 suma:=0.0;
 for i:=1 to n do begin
                        write ('x[',i,']=' ); readln (x[i]);
                        suma:=suma+x[i];
                       end;

writeln ('srednja vrednost je ', suma/n :10:2 ) ;
END.

primer 1b - isti zadatak na drugi način 

Program srednjaVrednostB;
var x:array [1..100] of real;
     i,n: integer; 
     suma:real;

BEGIN
 write ('unesite n ' ); readln (n);
 suma:=0.0;
 for i:=1 to n do begin {ciklus za unos podataka}
                        write ('x[',i,']=' ); readln (x[i]);
                       end;

{ciklus koji racuna sumu}
 for i:=1 to n do suma:=suma+x[i];

writeln ('srednja vrednost je ', suma/n :10:2 ) ;
END.


Primer 2:

Napisati program kojim se izračunava maksimalna vrednost niza x od n elemenata (n<=50).


Program MaxNiza;
var X:array [1..50] of real;
     i,n: integer; 
     maxX:real;

BEGIN
 write ('unesite broj elemenata niza ne veci od 50 : ' ); readln (n);

 for i:=1 to n do begin {ciklus za unos podataka}
                        write ('Unesite X[', i , ']=' ); readln (X[i]);
                       end;
maxX:=X[1];
 for i:=2 to n do 
    if maxX<X[i] then maxX:=X[i];

writeln ('Maksimum niza je ', maxX:10:5 ) ;
END.


Primer 3.
Kombinujući program MaxNiza i MaxTemp napisati program koji ispisuje redni broj maksimalne vrednosti niza.

Program redniBrojMaxNiza;
var X:array [1..50] of real;
     i,n,rb: integer; 
     maxX:real;

BEGIN
 write ('unesite broj elemenata niza ne veci od 50 : ' ); readln (n);

 for i:=1 to n do begin {ciklus za unos podataka}
                        write ('Unesite X[', i , ']=' ); readln (X[i]);
                       end;

maxX:=X[1]; rb:=1;

 for i:=2 to n do 
    if maxX<X[i] then begin
                                maxX:=X[i];
                                rb:=i;
                              end;  

writeln ('Maksimalni element niza X je na ', rb, '. mestu' ) ;
END.



 

 

© 2010 Dragoljub Perišić 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



 

 

 

©2017 Dragoljub Perišić